package com.cspm.common.core;

import com.cspm.common.util.DateUtil;
import com.cspm.common.util.IdWorker;

import java.util.Calendar;

/**
 * 系统常量
 * Created by CHQIU on 2017-04-17.
 */
public interface Constant {

    // 在线用户Cache
    public static String ONLINE_USER = "ap_online_user";
    // 踢出状态，true标示踢出
    public static String KICKOUT_STATUS = "ap_kickout_status";
    /**
     * 系统管理员权限
     */
    public static final String ROLE_SYSTEM_ADMIN = "ROLE_SYSTEM_ADMIN";
    /**
     * 普通管理员权限
     */
    public static final String ROLE_ADMIN = "ROLE_ADMIN";
    /**
     * 顾客权限
     */
    public static final String ROLE_CUSTOMER = "ROLE_CUSTOMER";

    /**
     * 获取用户UID，适用于系统所有用户
     */
    public static final String SESSION_AP_USERID = "SESSION_AP_USERID";
    /**
     * 获取系统管理员用户对象
     */
    public static final String SESSION_SYSTEM_ADMIN_USER = "SESSION_SYSTEM_ADMIN_USER";
    /**
     * 获取普通管理员用户对象
     */
    public static final String SESSION_ADMIN_USER = "SESSION_ADMIN_USER";
    /**
     * 获取顾客用户对象 customer
     */
    public static final String SESSION_CUSTOMER_USER = "SESSION_CUSTOMER_USER";

    /**
     * 获取当前系统单位名称
     */
    public static final String SESSION_AP_SYSNAME = "SESSION_AP_SYSNAME";


    /**
     * 菜单类型
     */
    public enum MenuType {
        /**
         * 目录
         */
        CATALOG(0),
        /**
         * 菜单
         */
        MENU(1),
        /**
         * 按钮
         */
        BUTTON(2);

        private int value;

        private MenuType(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }


    /**
     * 错误代码：正确
     */
    public static final int ERR_SUESSEE = 1;
    /**
     * 错误代码：未初始化
     */
    public static final int ERR_UNINITIALIZE = 0;
    /**
     * 错误代码：未登录
     */
    public static final int ERR_NOTLOGIN = -1;
    /**
     * 错误代码：用户类型无效
     */
    public static final int ERR_USERTYPE = -2;
    /**
     * 当前年份
     **/
    public static final int NOW_YEAY = Calendar.getInstance().get(Calendar.YEAR);
    public static String VERSION = DateUtil.dateToStringWithTime();// 版本号，重启的时间
    /**
     * 初始化ID生成器，调用方式idWorker.nextId()
     */
    public static IdWorker idWorker = new IdWorker();

    /*** Freemarker 使用的变量 begin **/
    static final String TARGET = "target";// 标签使用目标
    static final String OUT_TAG_NAME = "outTagName";// 输出标签Name
    /*** Freemarker 使用的变量 end **/

    /** 相关路径 begin **/
    /**
     * 系统路径间隔符
     */
    public static final char FILE_SEPARATOR = System.getProperty("file.separator").charAt(0);
    /**
     * 项目根路径
     */
    public static final String CONTEXT_PATH = "ap";
    /**
     * 视频存储路径
     **/
    public static final String VIDEO_PATH = "\\resource\\video\\flv";
    /**
     * 视频截图存储路径
     **/
    public static final String VIDEO_ASSETS_PATH = "\\resource\\video\\assets";
    /**
     * 头像路径
     **/
    public static final String HEADIMG_PATH = "\\resource\\headimgurl";
    /**
     * wkhtmltopdf路径
     **/
    public static final String wkhtmltopdf_path = "C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
    /**
     * PDF
     **/
    public static final String PDF_PATH = "\\resource\\pdf";
    /**
     * 图片存放路径
     **/
    public static final String IMG_PATH = "\\resource\\img";
    /**
     * 文件存放路径
     **/
    public static final String FILE_PATH = "\\resource\\file";
    /**
     * ffmpeg.exe路径
     */
    public static final String FFMPEG_FILE = "\\exe\\ffmpeg.exe";

    /**
     * 系统默认头像URL
     **/
    public static final String DEFAULT_HEADIMG = "/static/img/headImg/touxiang-default.png";

    /** redis 消息队列主题名称 begin */
    /**
     * 分发任务到各个班级和学生
     */
    public static final String REDIS_QUEUE_RELEASE_TASK = "redis_queue_release_task";
    /**
     * 推送消息
     */
    public static final String REDIS_QUEUE_PUSH_MESSAGE = "redis_queue_push_message";
    /**
     * 学生操作日志
     */
    public static final String REDIS_QUEUE_ACTIVE_LOG = "redis_queue_active_log";

    /** 用户类型 ****/
    /**
     * 系统管理员
     */
    public static final Integer AP_SYSTEM_ADMIN = 1;
    /**
     * 普通管理员
     */
    public static final Integer AP_ADMIN = 2;
    /**
     * 顾客
     */
    public static final Integer AP_CUSTOMER = 3;
}
